package com.alks.function.service;

import com.alks.entity.data.entity.*;
import com.alks.entity.data.entity.imes.JiZhuanJinDuSearchObj;
import com.alks.entity.data.entity.imes.JiZhuanJinDuTree;
import com.alks.entity.data.entity.imes.TrailTaskHead;
import com.alks.entity.data.entity.imes.TrailTaskProcess;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.dto.SdBomPartNew2Rep;
import com.alks.function.data.dto.chengKong.assort.YfBomPartNew2Dto;
import com.alks.function.data.request.quotation.PcStyleCraftRequest;
import com.alks.function.data.request.quotation.bom.BomDataCopyReq;
import com.alks.function.data.request.quotation.bom.BusinessMtlReq;
import com.alks.function.data.request.stock.SdMtlNewReq;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public interface SdStyleService {

    ResponseInfo getUnProcessStyle(PcStyleCraftRequest rep,String choose) throws InterruptedException;

    ResponseInfo insertProcess(PcStyleCraftRequest rep);

    ResponseInfo getStyleProductionList(PcStyleCraftRequest request,String flag);

    ResponseInfo copyStyleProcess(String style1, String style2, String color1, String color2);

    ResponseInfo creatCutAndProcess(PcStyleCraftRequest req, String choose);

    ResponseInfo optionStyleProcess(StyleProductionProcess req, String choose,String style,String styleColor);

    ResponseInfo renewalSiteDifferenceList(String style,String color);


    ResponseInfo renewalSiteDifference(List<PcDiffPart> req, String choose);

    ResponseInfo processUpdateRecord(String style,Integer pageNum, Integer pageSize);

    ResponseInfo returnCutDeptList();

    ResponseInfo checkProcessRecord(List<PcStyleCraftRequest> req, String check);

    ResponseInfo getSdBomFitSubNew2(YfBomPartNew2Dto req);

    ResponseInfo laminatedWoodDecomposition(List<YfBomPartNew2Dto> list);

    ResponseInfo fitSplitConfirmation(SdBomFitSubNewReq req);

    ResponseInfo sectionalSectionFiling(YfBomPartNew2Dto req, Integer segment);

    ResponseInfo generateMaterialCode(List<YfBomPartNew2Dto> req);

    ResponseInfo updateFitSplitConfirmation(SdBomFitSubNew2 req);

    ResponseInfo setNullMaterialCode(YfBomPartNew2Dto req);

    ResponseInfo createTypeNo(List<YfBomPartNew2Dto> req);

    ResponseInfo classificationKeyList(SdMtlTypeKey req);

    ResponseInfo addClassificationKey(SdMtlTypeKey req);

    ResponseInfo bomDataReplication(BomDataCopyReq req);

    ResponseInfo generateBMtl(BusinessMtlReq req);

    ResponseInfo getSdMtlSubNew(String mtlNo);

    ResponseInfo getSdBomMtl(SdMtlNewReq req);

    ResponseInfo subFitOption(List<SdBomFitSub> list);

    ResponseInfo copyCurrTo(SdBomPartNew2Rep req);

    ResponseInfo getMtlColor(String colorName,Integer pageNum,Integer pageSize);

    ResponseInfo getColorWithCode(String color,Integer pageNum,Integer pageSize);

    ResponseInfo getSdMtlSubFit(String mtlNo);

    void downloadStyleProcess(HttpServletResponse response, List<PcStyleCraftRequest> list) throws IOException;

    ResponseInfo busMtlDelete(String mtlNo);

    ResponseInfo getParamSet(String type, String name,Integer pageNum,Integer pageSize);

    ResponseInfo optionParam(ParamSettingResp req, String choose);

    ResponseInfo getTaskFiling(String custNo, String styleNo, String taskState, Integer pageNum, Integer pageSize);

    ResponseInfo optionTask(List<TaskFillingResp> req, String choose);

    ResponseInfo getTaskFilingDetail(String styleNo,String styleColor);

    ResponseInfo updateTaskStateQty(TaskFilingDetailResp req);

    List<JiZhuanJinDuTree> treeList(JiZhuanJinDuSearchObj searchObj);

    ResponseInfo queryHeadList(JiZhuanJinDuSearchObj searchObj);

    ResponseInfo creatTask(TaskFillingResp req);

    List<JiZhuanJinDuTree> proplemList(JiZhuanJinDuSearchObj searchObj);

    ResponseInfo queryProblemHeadList(JiZhuanJinDuSearchObj searchObj);

    ResponseInfo selectByExample(TrailTaskProcess trailTaskProcess);

    ResponseInfo queryByQrCode(String qrCode);

    ResponseInfo addTrailTaskProcess(TrailTaskProcess trailTaskProcess);

    ResponseInfo deleteDataByRowId(TrailTaskProcess trailTaskProcess);

    ResponseInfo deleteAllProcess(PcStyleCraftRequest rep);

    ResponseInfo updatePcStyleProcess(List<StyleProductionProcess> list);

    ResponseInfo optionTaskPrintFlag(List<TrailTaskHead> request);
}
